home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Czech Logic, Card & Gambling Games
/
Logické hry.iso
/
hry
/
Fish Fillets
/
script
/
share
/
level_plan.lua
< prev
next >
Wrap
Text File
|
2005-07-16
|
3KB
|
115 lines
-- -----------------------------------------------------------------
-- Random numbers
-- -----------------------------------------------------------------
function random(limit)
-- return number from [0, limit)
if limit <= 0 then
return 0
else
return math.random(limit) - 1
end
end
-- -----------------------------------------------------------------
function randint(start, max)
-- return number from [start, max]
if start >= max then
return start
else
return math.random(start, max)
end
end
-- -----------------------------------------------------------------
-- Switch statement for lua
-- -----------------------------------------------------------------
function switch(case)
return function(codetable)
local f = codetable[case] or codetable.default
if f then
if type(f) == "function" then
return f(case)
else
error("case '"..tostring(case).."' is not a function")
end
end
end
end
-- -----------------------------------------------------------------
-- Manipulation with tables
-- -----------------------------------------------------------------
function createArray(size)
local array = {}
for i = 0, size - 1 do
array[i] = 0
end
return array
end
function isIn(item, table)
for index, value in pairs(table) do
if value == item then
return true
end
end
return false
end
function isRange(value, min, max)
return min <= value and value <= max
end
function countPairs(table)
local count = 0
for index, value in pairs(table) do
count = count + 1
end
return count
end
-- -----------------------------------------------------------------
-- Planning functions
-- -----------------------------------------------------------------
local function isTime(delay, count)
return count >= delay
end
function planTimeAction(delay, action)
local waitTime = 0
game_planAction(function(count)
local done = false
if dialog_isDialog() then
waitTime = count
elseif isTime(delay + waitTime, count) then
action()
done = true
end
return done
end)
end
function planDialog(actor_index, delay, dialog, action)
planTimeAction(delay, function()
model_talk(actor_index, dialog, 100, 0, true)
if nil ~= action then
action()
end
end)
end
-- -----------------------------------------------------------------
-- Options
-- -----------------------------------------------------------------
function optionsGetParam(paramName)
return options_getParam(paramName)
end
function optionsGetAsInt(paramName)
local value = tonumber(options_getParam(paramName))
if nil == value then
value = 0
end
return value
end